package controller

import (
	"log"
	"testhttp/model"
	"testhttp/service"

	"github.com/kataras/iris/v12"
)

func ListGoods(ctx iris.Context) {

	var listparam model.HttpParamsGoods

	err := ctx.ReadJSON(&listparam)
	if err != nil && !iris.IsErrPath(err) {
		ctx.StatusCode(iris.StatusInternalServerError)
		ctx.WriteString(err.Error())
	} else {
		res := service.SearchGoods(listparam)
		ctx.JSON(res)
		log.Print("Debug list res:", res)
	}
}

func AddGoods(ctx iris.Context) {
	var goods []model.Goods

	err := ctx.ReadJSON(&goods)
	if err != nil && !iris.IsErrPath(err) {
		ctx.StatusCode(iris.StatusInternalServerError)
		ctx.WriteString(err.Error())
		log.Print(err)
	} else {
		res := service.InsertGoods(goods)
		ctx.JSON(res)
	}
}

func DelGoods(ctx iris.Context) {
	var goods []model.Goods

	err := ctx.ReadJSON(&goods)
	if err != nil && !iris.IsErrPath(err) {
		ctx.StatusCode(iris.StatusInternalServerError)
		ctx.WriteString(err.Error())
	} else {
		ctx.JSON(service.UpdateGoods(1, goods))
	}
}

func GetGoods(ctx iris.Context) {
	id, err := ctx.URLParamInt("id")
	if err != nil && !iris.IsErrPath(err) {
		ctx.StatusCode(iris.StatusInternalServerError)
		ctx.WriteString(err.Error())
	} else { //改善 需要加判断，返回数据为空
		ctx.JSON(service.GetGoods(id))
	}
}

func UpdateGoods(ctx iris.Context) {
	var goods []model.Goods
	err := ctx.ReadJSON(&goods)
	if err != nil && !iris.IsErrPath(err) {
		ctx.StatusCode(iris.StatusInternalServerError)
		ctx.WriteString(err.Error())
	} else {
		ctx.JSON(service.UpdateGoods(0, goods))
	}
}
